The inventive concept relates generally to electronic data storage technologies. More particularly, the inventive concept relates to methods of managing data in a system comprising a nonvolatile memory.
Computing systems typically include multiple different types of memory for providing different levels of data storage. For example, most computing systems comprise a long-term memory designed to provide long-term data storage, and a working memory (or main memory) designed to temporarily store data used to perform current operations. The long-term memory typically comprises some form of nonvolatile memory, such as a hard disk drive (HDD), a solid state drive (SSD), or a flash memory, for example. The temporary memory typically comprises a volatile memory such as a dynamic random access memory (DRAM) or a static random access memory (SRAM).
In a typical computing system, the long-term memory stores operating system (OS) and application code to be loaded to the main memory during execution. It also may store various forms of user data. The main memory, on the other hand, stores OS and application code during execution, as well as data generated or used by the OS and application code during execution. The main memory may also temporarily store user data or other types of data to be manipulated by or used by the OS or executing applications.
Data may be stored in the long-term memory or the main memory using different types of data structures. For example, one type of memory may store data in a tree structure, while another type of memory may store data in a linear structure. The use of different data structures may require conversion to be performed when data, such as application data, is transferred from one memory to another. In addition, the use of different data structures or other features may also require each of the different memories to be controlled by a different OS. These and other complications can potentially reduce system performance.